package com.ys.nms.module.business.dal.dataobject.portsVlans;

import com.ys.nms.framework.mybatis.core.dataobject.BaseDO;
import com.ys.nms.framework.mybatis.core.dataobject.BaseSlaveDO;
import com.ys.nms.framework.tenant.core.aop.TenantIgnore;
import com.ys.nms.module.business.dal.dataobject.ports.PortsDO;
import lombok.*;
import com.baomidou.mybatisplus.annotation.*;

/**
 * ports_vlans DO
 *
 * @author zzy
 */
@TableName("ports_vlans")
@KeySequence("ports_vlans_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。MySQL 可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TenantIgnore
public class PortsVlansDO extends BaseSlaveDO {

    /**
     * ID
     */
    @TableId
    private Integer portVlanId;

    /**
     * 设备ID
     */
    @TableField(value = "device_id")
    private Integer deviceId;

    /**
     * 端口ID
     */
    @TableField(value = "port_id")
    private Integer portId;

    /**
     * 所属的 VLAN ID（即 VLAN 号），取值范围 1–4094，表示该端口参与的 VLAN。
     */
    @TableField(value = "vlan")
    private Integer vlan;

    /**
     * 对应的桥端口索引
     */
    @TableField(value = "baseport")
    private Integer baseport;

    /**
     * 该端口在该 VLAN 中的生成树优先级（Spanning Tree Priority），影响 STP 根路径选择。
     */
    @TableField(value = "priority")
    private Long priority;

    /**
     * 该端口在该 VLAN 中的生成树状态，常见值包括：
     * - forwarding（转发）
     * - blocking（阻塞）
     * - learning
     * - disabled
     * 用于监控 STP 行为和网络环路风险。
     */
    @TableField(value = "state")
    private String state;

    /**
     * 该端口在该 VLAN 中的生成树路径成本（STP Cost），成本越低，路径越优。可反映带宽或管理员配置。
     */
    @TableField(value = "cost")
    private Integer cost;

    /**
     * 是否为非标记（Untagged）端口：
     * - 1：是（Untagged）
     * - 0：否（Tagged）
     */
    @TableField(value = "untagged")
    private Integer untagged;


    @TableField(exist = false)
    private PortsDO portsDO;




}